package fr.upstlse.glre.client.widgets.modelData;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.data.ModelData;

import fr.upstlse.glre.client.constante.fields.ActualiteConstante;
import fr.upstlse.glre.client.vo.actualite.ActualiteVOGWT;
import fr.upstlse.glre.client.vo.user.UserVOGWT;

public class ActualiteModelData extends BaseModelData {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6421111287895077059L;

	public ActualiteModelData(ActualiteVOGWT pActualiteVOGWT) {
		set(ActualiteConstante.MODELDATA_ID.getValue(), pActualiteVOGWT.getId());
		set(ActualiteConstante.MODELDATA_TITRE.getValue(), pActualiteVOGWT.getTitre());
		set(ActualiteConstante.MODELDATA_CONTENU.getValue(), pActualiteVOGWT.getContenu());
		set(ActualiteConstante.MODELDATA_DATE.getValue(), pActualiteVOGWT.getDate());
		set(ActualiteConstante.MODELDATA_USER.getValue(), pActualiteVOGWT.getUserVOGWT());
	}
	
	public ActualiteModelData(ModelData pModelData) {
		set(ActualiteConstante.MODELDATA_ID.getValue(), pModelData.get(ActualiteConstante.MODELDATA_ID.getValue()));
		set(ActualiteConstante.MODELDATA_TITRE.getValue(), pModelData.get(ActualiteConstante.MODELDATA_TITRE.getValue()));
		set(ActualiteConstante.MODELDATA_CONTENU.getValue(), pModelData.get(ActualiteConstante.MODELDATA_CONTENU.getValue()));
		set(ActualiteConstante.MODELDATA_DATE.getValue(), pModelData.get(ActualiteConstante.MODELDATA_DATE.getValue()));
		set(ActualiteConstante.MODELDATA_USER.getValue(), pModelData.get(ActualiteConstante.MODELDATA_USER.getValue()));
	}
	
	public static List<ActualiteModelData> toActualiteModelDatas(Collection<ActualiteVOGWT> pActualiteVOGWTs) {
		ArrayList<ActualiteModelData> lActualiteModelDatas = new ArrayList<ActualiteModelData>(pActualiteVOGWTs.size());
		for(ActualiteVOGWT lActualiteVOGWT : pActualiteVOGWTs) {
			ActualiteModelData lActualiteModelData = new ActualiteModelData(lActualiteVOGWT);
			lActualiteModelDatas.add(lActualiteModelData);
		}
		
		return lActualiteModelDatas;
	}
	
	public ActualiteVOGWT toActualiteVOGWT() {
		ActualiteVOGWT lActualiteVOGWT = new ActualiteVOGWT();
		lActualiteVOGWT.setId(((Long) get(ActualiteConstante.MODELDATA_ID.getValue())));
		lActualiteVOGWT.setTitre((String) get(ActualiteConstante.MODELDATA_TITRE.getValue()));
		lActualiteVOGWT.setContenu((String) get(ActualiteConstante.MODELDATA_CONTENU.getValue()));
		lActualiteVOGWT.setDate((Date) get(ActualiteConstante.MODELDATA_DATE.getValue()));
		lActualiteVOGWT.setUserVOGWT((UserVOGWT) get(ActualiteConstante.MODELDATA_USER.getValue()));
		return lActualiteVOGWT;
	}
}
